For developing a program code (hereinafter, parallel program code) in which at least a portion of the program code is partitioned into a plurality of processing units which can be executed in parallel, a lot of cost is required. At job sites of development, a parallel program code is created in many cases by parallelizing a program code (hereinafter, sequential program code) so as to be executed in parallel.
Performance evaluation of such a parallel program code can be performed by that a programmer actually creates and executes a parallel program code using a parallelization library such as p_thread and so on. But a lot of cost is required for creating a parallel program code. In addition, as a result of performance evaluation of a parallel program code, when policy of parallelization is to be changed, a parallel program code is to be created again.
There is a technology to automatically create a parallel program code from a sequential program code and parallelization information. But a parallel program code which is automatically created may be abnormally terminated by segmentation fault and so on if combination of input sequential program and parallelization information is no appropriate. In addition, even when the parallel program code is not abnormally terminated, there is a case that a bug such as data race affects a result of control statement which controls an execution path of a program, and a performance evaluation can not be properly performed.